//////////////////////////////////////////////////////////////////////////

#ifndef _SPLASHSCREEN_H_
#define _SPLASHSCREEN_H_

//#ifndef _LAYER_H_
//#include "layer.h"
//#endif
//
#ifndef _SCREEN_H_
#include "screen.h"
#endif

//#ifndef _INPUT_H_
//#include "input.h"
//#endif

//#include <vector>
#include <boost\thread\xtime.hpp>
class GUI;
class Input;
struct SDL_Surface;
class GUI_Surface;


class GUI_SplashScreen : public GUI_Screen
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////

    GUI_SplashScreen(GUI *_gui);
    virtual ~GUI_SplashScreen();
    
    virtual void Resize();
    virtual void Render(SDL_Surface *_mainSurface);

//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////

    GUI * m_GUI;

    int m_CurrentTitle;
    bool m_Waiting;
    boost::xtime m_Delay;
    //SDL_Surface *m_Surface;
    GUI_Surface *m_TitleSurface;


    /** Key change handler */
    virtual void OnKeyChanged(Input* _input);


    /** Mouse position change handler */
    virtual void OnMousePositionChanged(Input* _input);

//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
